﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Librerias;

namespace eCampus
{
    /// <summary>
    /// Formulario para consultar una bibliografia
    /// </summary>
    public partial class FormBibliografiaConsultar : Form
    {
        /// <summary>
        /// variables
        /// </summary>
        string usuario;
        string asignatura;

        ENBibliografia b = null;
        bool busqueda = false;
        int numeroEntradas = 0;

        /// <summary>
        /// Constructor parametrizado
        /// </summary>
        /// <param name="usu">usuario</param>
        /// <param name="asig">asignatura</param>
        public FormBibliografiaConsultar(string usu, string asig)
        {
            usuario = usu;
            asignatura = asig;
            b = new ENBibliografia(usuario, asignatura);
            InitializeComponent();
            cbFiltro.SelectedIndex=0;
             RellenarDatagrid(true);
        }
        

        /// <summary>
        /// Actualiza el contenido del DataGrid,
        /// </summary>
        public void RellenarDatagrid(bool primeraVez = false)
        {
            numeroEntradas++;
          //    dgvBibliografia.DataSource = null;
            ENUsuario u = new ENUsuario();
            DataSet DS = new DataSet();
            DataTable t = new DataTable();


            if (busqueda)
            {
                dgvBibliografia.DataSource = b.ConsultaBibliografia(tbBuscar.Text, cbFiltro.SelectedIndex);
                
            }
            else
            {
                dgvBibliografia.DataSource = b.ConsultaBibliografiaPorAsignatura(asignatura);
            }

            dgvBibliografia.Columns["bibId"].Visible = true;
            dgvBibliografia.Columns["bibAsignatura"].Visible = true;
            dgvBibliografia.Columns["bibEnlace"].Visible = false;
            dgvBibliografia.Columns["bibTitulo"].Visible = true;
            dgvBibliografia.Columns["bibAutor"].Visible = false;
            dgvBibliografia.Columns["bibEdicion"].Visible = false;
            dgvBibliografia.Columns["bibISBN"].Visible = true;
            dgvBibliografia.Columns["bibWeb"].Visible = true;
            dgvBibliografia.Columns["bibDatos"].Visible = false;




            if (primeraVez)
            {

                //Añade columna eliminar
                DataGridViewImageColumn ColEliminar = new DataGridViewImageColumn();
                ColEliminar.Name = "elim";
                ColEliminar.HeaderText = "¿Eliminar?";
                ColEliminar.Image = eCampus.Properties.Resources.btBorrar;
                ColEliminar.Width = 30;
                dgvBibliografia.Columns.Add(ColEliminar);

                //Establece propiedades de columnas
                dgvBibliografia.Columns["bibId"].HeaderText = "Nº Bibliografia";
                dgvBibliografia.Columns["bibAsignatura"].HeaderText = "Asignatura";
                dgvBibliografia.Columns["bibTitulo"].HeaderText = "Titulo";
                dgvBibliografia.Columns["bibAutor"].HeaderText = "Autor";
                dgvBibliografia.Columns["bibWeb"].HeaderText = "Web";
                dgvBibliografia.Columns["bibISBN"].HeaderText = "ISBN";
                dgvBibliografia.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow;
                dgvBibliografia.Columns["bibTitulo"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            }



        }

        private void cbFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// Muestra todos las referncias de la base de datos
        /// </summary>
        /// <param name="sender">btTodos</param>
        /// <param name="e">Click</param>
        private void btTodos_Click(object sender, EventArgs e)
        {
            busqueda = false;
            btTodos.Visible = false;
            tbBuscar.Text = "";
            cbFiltro.SelectedIndex = 0;
            RellenarDatagrid();
        }

        /// <summary>
        /// Boton para la creacion de nueva bibliografia
        /// </summary>
        /// <param name="sender">btNuevo</param>
        /// <param name="e">Click</param>
        private void btNuevo_Click(object sender, EventArgs e)
        {
            tbBuscar.Text = "";
            FormBibliografiaCrearModificar f = new FormBibliografiaCrearModificar(asignatura);
            f.ShowDialog();
            btBusquedaSimple.PerformClick();
            f.Dispose();
        }
        /// <summary>
        /// Hace la busqueda simple y saca redultados
        /// </summary>
        /// <param name="sender">btBusquedaSimple</param>
        /// <param name="e">Click</param>

        private void btBusquedaSimple_Click(object sender, EventArgs e)
        {
            busqueda = true;
            btTodos.Visible = true;
            RellenarDatagrid();
        }

        /// <summary>
        /// Evento para el contenido de la celda eliminar 
        /// </summary>
        /// <param name="sender">dgvBibliografi</param>
        /// <param name="e">CellContentClick</param>
        private void dgvBibliografia_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex == dgvBibliografia.Columns["elim"].Index)
            {
                ENBibliografia b = new ENBibliografia();
                b.Id = int.Parse(dgvBibliografia.CurrentRow.Cells["bibId"].Value.ToString());

                if (MessageBox.Show("¿Desea eliminar permanentemente la bibliografia \"" + dgvBibliografia["bibId", e.RowIndex].Value.ToString() + "\"?", "Eliminar Bibliografia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {

                    b.EliminarBibliografia();

                    RellenarDatagrid();
                }
            }


        }

        /// <summary>
        /// Evento para doble click. crea bibliografia para Modificar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvBibliografia_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                ENBibliografia u = new ENBibliografia(int.Parse(dgvBibliografia["bibId", e.RowIndex].Value.ToString()),
                                            dgvBibliografia["bibAsignatura", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibEnlace", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibTitulo", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibAutor", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibEdicion", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibISBN", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibWeb", e.RowIndex].Value.ToString(),
                                           dgvBibliografia["bibDatos", e.RowIndex].Value.ToString());


                FormBibliografiaCrearModificar n = new FormBibliografiaCrearModificar(u);
                n.ShowDialog();

               // dgvBibliografia.DataSource = null;
                RellenarDatagrid();

            }
        }

        private void FormBibliografiaConsultar_Load(object sender, EventArgs e)
        {
        
        }
    }
}

